DGS Search v0.9.6 (02/07/01) - http://www.digitalgenesis.com

Change Log:

  v0.9.6 (02/07/01) - Cleanup, bug fixes and many enhancements.
    - Removed a extra declaration of extSeparator from findext().
    - Removed displayResults() and displayResultsNavigation() from utils.php. They
      were moved to modules in v0.9.5.
    - Fixed an incorrect error message in search.php.
    - Added support for encoded foreign characters. (Suggested by Carlos Viana)
    - Fixed a bug in the db search module that greatly increases the speed of
      searches that join tables using $database[x]["tableAssoc"]. (Submitted by Tony
      Wilson and hatsebutz)
    - Fixed incorrect usage of function_exists() that caused some version of PHP to
      throw warnings or fail. (Submitted by Cyrille Artho)
    - Changed the 'html?' entry in $config["exts"] to 's?html?' to include '.shtml'
      files by default.
    - Added $config["docExts"] which allows searching of a text or html file, while
      the results page provides a URL for a PDF, Word doc or Postscript file. The
      idea is to create a plain text version of PDF documents for searching, so the
      user can locate the original PDF document. (Submitted by Cyrille Artho)
    - Added $config["frameSet"], which adds support to provide a link to the frame
      set, rather than the automatically generated documents that are embedded in
      the frame sets. (Submitted by Cyrille Artho)
    - Merged verifyPHPVersion() from DGS Form.
    - Fixed a bug with $config["forceLower"]. The query itself needed to be
      lowercased, rather than just the contents of the fields.
    - Added support for full path to $config["header"] and $config["footer"]. If no
      path is given, it is assumed that the file is within the "config" directory.
    - Added $config["maxSearchTime"] which allows you to limit the amount of time
      spent searching. The "db" module can only be interrupted between searches.
      This value should be set 3-5 seconds less than PHP's max_execution_time which
      is 30 seconds by default.
    - Cache file will now expire itself if the config.php has been modified. This
      allows fs related configuration changes to take affect immediately.
    - Added $config["siteBase"] to give more flexability to where DGS Search can
      be installed on a site. $config["siteBase"] corresponds to where the URL base
      is specified.
    - Error messages returned from MySQL, MSSQL and IBase databases are now displayed
      on failures. Should make it easier to see what went wrong.
    - Moved module checks into verifyConfig(). Should speed up execution a slightly.
    - Converged many redundant ereg_replace() calls into one function.
    - Added support for language packs with $config["language"].
    - Added English, German and Spanish language packs. The majority of the German
      content was taken from Sebastian Barbe's site at http://www.leibnetz.de and
      Spanish content was taken from Joo Luis Correia's site at
      http://www.netspring.pt. The missing parts were translated with Bablefish,
      so if parts are incorrect, please let us know.
    - Improved verifyConfig() by adding path verification and type checking for
      several entries within config.php. More work still needs to be done.
    - Added $database[x]["descWidth"] to allow limiting the width of descriptions
      from a database. (Suggested by Russ McClay)
    - Added simple support for displaying the META 'description' rather than content
      from page as the description on results page. (Suggested by Joe Hill)
    - Cleaned up output and added more useful information when debug is enabled.
    - Fixed a bug that caused a blank entry as item 1 on the results page. The fix
      as converting settype($var, "array") instances into $var = array(). The
      settype() call causes an empty array to report a size of 1 rather than 0 on
      some versions of PHP. (Reported by Joo Luis Correia)
    - Added LIMIT/TOP support to db module for MySQL and MSSQL database types. This
      should speed up database queries on large databases.
    - Added $config["target"] which sets the frame TARGET for links. (ie: _self)
    - Added $database[x]['port'] to allow non-standard database ports for MySQL,
      PgSQL, and MSSQL. ODBC igores this setting and IBase was left unimplemented.
    - Added basic PostgreSQL support to the "db" module. I don't have PostgreSQL
      setup, so please report success/failure. (Submitted by Oleg V. Kalashnikov
      and James Greenhalgh)
    - Swapped out my insane boldQuery() function with a much simpler call to
      eregi_replace(). (Submitted by Woody Lee)
    - All strings that don't need expansion now use single quotes rather than double
      quotes. Should give a very minor speed improvement.
    - The "db" module now supports the bold query option.
    - A source field has been added to the array of matches. This allows for special
      handling in display modules depending on the source of the result.
    - Added $config['remoteDebug'] which allows debug information to be enabled via
      parameters passed to DGS Search. This should aid in debugging on a live site.
    - Converted all <? ?> pairs into <?php ?> pairs, to be more compatible.
    - Added $config['infoBar'] and $config['infoBarFormat'] which allows the
      Information Bar to be fully configured.
    - Added $config['navColor'] which allows setting of the Navigation color seperate
      from the Information Bar.
    - Fixed an early exit condition in the 'fs' and 'db' modules that caused DGS
      Search to do a little extra work in a few places.
    - The .zip archive now has Win9x/NT/2000 specific example paths in config.php.

    Output from diffstat:

      CHANGELOG                 |  113 +++++++
      INSTALL                   |  257 +++++++++++++++--
      MODULES                   |   46 +--
      README                    |   12 
      TODO                      |   15 -
      UPGRADE                   |   16 +
      index.php                 |   36 +-
      search.php                |  149 +++++-----
      config/config.php         |  158 +++++-----
      config/header.php         |    8 
      libs/display/hr.php       |    4 
      libs/display/nav.php      |   32 +-
      libs/display/query.php    |   27 +
      libs/display/results.php  |   80 +++--
      libs/display/stats.php    |   39 +-
      libs/display/title.php    |   10 
      libs/language/.htaccess   |    6 
      libs/language/english.php |   27 +
      libs/language/german.php  |   27 +
      libs/language/spanish.php |   27 +
      libs/search/db.php        |  652 ++++++++++++++++++++++++++++++--------------
      libs/search/fs.php        |  200 +++++++------
      libs/utils.php            |  673 ++++++++++++++++++++++++++++++++++------------
     
      23 files changed, 1860 insertions, 754 deletions

  v0.9.5 (09/10/00) - Bug fixes and minor enhancements.
    - Fixed a bug that caused the navigation and query URLs to not work when
      <BASE HREF=""> was specified in header.php. (Reported by Dan Pasch)
    - Fixed misc typos in config.php and INSTALL.
    - Fixed a bug that may have caused modules to fail on some platforms.
    - Fixed a bug that caused blank descriptions to appear on larger files.
    - Fixed a bug that caused $config["results"] to be ignored when 'r' was not
    - Fixed a bug in that caused files to be skipped after a symlink was followed.
    - Fixed a bug introduced in v0.9.3 that caused the "fs" module to fail if the
      "db" module was called first and returned more than a page of results.
    - Fixed a bug in display module "nav" that caused the URL to be built
      incorrectly for multiword searches. (Reported by Dan Pasch)
    - Optimized findExt() which searches the filesystem looking for files to
      search. Function is about 40% faster now.
      specified in the URL. (Reported by Dan Pasch)
    - Forced search times to be positive values. Very quick searches were sometimes
      returning negative times, probably due to a bug in PHP3.
    - Added a function to verify the configuration and suggest fixes. This
      function still needs to be fleshed out a bit.
    - Expanded module support to include search and display modules. This allows
      for much greater flexibility in displaying results. See MODULES.
    - Reorganized the libs directory to accommodate new module support.
    - Added support for filenames and directories with spaces in them. Spaces are
      now replaced with '%20'. (Suggested by Thomas Langridge)
    - Descriptions on the results pages now attempt to not cut words.
    - Added experimental InterBase support to the "db" module. I don't have an
      InterBase database setup to test this, but it looks correct. :) So please
      report success/failures. (Submitted by Gregor Ibic)
    - Updated header.php with some meta tags.
    - Added a 'Translate' option to the results page. It can be configured using
      $config["translate"] and $config["translateFrom"]. See INSTALL for details.
    - Added a new feature to force case-insensitive searches. This features can
      be enabled on a per database level with $database[x]["forceLower"].
    - Added regular expression support to $config["fsExclude"] and $config["exts"].
      This allows much greater flexibility on inclusion and exclusion of files.
    - Improved database error and debug messages.
    - Searching for no keywords now gives a nice looking error message.
    - Register_globals in php.ini no longer needs to be enabled. We should now be
      able to deal with any method of passing variables in PHP3 and PHP4.

    Output from diffstat:

      CHANGELOG                |   74 +++++
      INSTALL                  |  171 ++++++++++--
      MODULES                  |   92 +++---
      README                   |    9
      TODO                     |   10
      UPGRADE                  |   16 +
      search.php               |   83 ++++--
      config/config.php        |   29 +-
      config/header.php        |    5
      libs/display/.htaccess   |    6
      libs/display/hr.php      |   16 +
      libs/display/nav.php     |   43 +++
      libs/display/query.php   |   27 ++
      libs/display/results.php |   64 ++++
      libs/display/stats.php   |   37 ++
      libs/display/title.php   |   21 +
      libs/search/.htaccess    |    6
      libs/search/db.php       |  623 +++++++++++++++++++++++++++++++++++++++++++++++
      libs/search/fs.php       |  161 ++++++++++++
      libs/searchdb.php        |  426 --------------------------------
      libs/searchfs.php        |  140 ----------
      libs/utils.php           |  192 +++++++-------
 
      22 files changed, 1482 insertions, 769 deletions

  v0.9.4 (08/29/00) - Bug fixes and minor enhancements.
    - Fixed a bug causing extra slashes in URLs.
    - Fixed a bug causing filesystem searches to fail completely on some systems.
    - Fixed a bug that caused only the base URL to be displayed for all results, when
      a bad cache file was used. (Reported by Jon Petrovski)
    - Search time is now reported to the 10th of a second on supported systems.
    - Minor documentation improvements.

    Output from diffstat:

      CHANGELOG         |   59 +++++++++++++++------
      INSTALL           |  123 ++++++++++++++++++++++++++++++++-------------
      MODULES           |    2 
      README            |    4 -
      TODO              |    3 -
      UPGRADE           |   15 +++++
      index.php         |    6 +-
      search.php        |    4 -
      config/config.php |   16 +++--
      libs/searchdb.php |   10 +++
      libs/searchfs.php |   13 ++--
      libs/utils.php    |  145 ++++++++++++++++++++++++++++++++++++------------------
     
      12 files changed, 277 insertions, 123 deletions

  v0.9.3 (08/27/00) - Bug fixes and enhancements.
    - Greatly enhanced the flexibility of the database searches. You are now
      able to build dynamic URLs, link names and descriptions using data from
      the database. See the INSTALL file for more details.
    - Added a query field on the results page. It can be toggled in config.php
      with $config["query"].
    - Search now pulls the title of HTML documents for filesystem searches and
      uses it as the link.
    - Fix some possible bugs associated with not resetting arrays before use.
    - The query is now always in the description on the results page. The code
      to build the description is now more intelligent.
    - Added ability to search all files, not just specific file extensions.
    - Added instructions for creating a unified diff to the README.
    - Fixed example and comments in README and config.php on file separator
      on Windows platforms. (Reported by Mark MacRae)
    - Database results are now ordered by the order they are specified in
      $config["returnFields"] for MySQL and MSSQL databases.
    - Added ability to have multiple tables, and associate the tables for more
      complex searches. (ie: SQL Join)
    - Now able to exclude specific files as well as directories.
    - Now able to exclude files by their filesize.
    - Added ability to exclude symlinks from searches with $config["followLinks"].
      Some sites may want to disable this for security reasons or for sites on which
      PHP may have issues following links.
    - Now able to disable tag stripping with $config["stripTags"].
    - Fixed bug where some PHP or HTML content would not be ignored during searches
      and/or not excluded from search results.
    - Added Navigation, which allows you to limit the number of results per page
      and jump to any point within the result set.
    - Added URL to each result for viewing. Similar to Google.
    - Added filesize and last modified timestamp to results where we are able to
      obtain that information.
    - Fixed minor bug that caused extra HTML tags to be added to result descriptions.
    - New filesystem search code that increased search speed around 50%.
    - Bug that caused wide documents to be missed in searches was fixed by
      the new filesystem search code.
    - Added ability to set font(s) on the Display Results page with $config["fonts"].
    - No longer prints a warning when no results were found.
    - Introduced simple module support, and migrated the filesystem and database
      search into modules.
    - Added a filesystem cache for the searchfs module. Option $config["cacheFile"]
      allows you to choose the file location and $config["cacheTTL"] lets you set the
      cache time to live. Use of the fs cache can increases search speed up to 50%.
    - Fixed various typos.
    - Added a much nicer looking index.php page.
    - Added the images dgssearch_button.jpg, dgssearch.gif, and dgssearch_black.gif
      for those of you that wanted a "Powered by DGS Search". (Created by Dan Pasch)

    Output from diffstat:

      CHANGELOG                   |   68 ++++++++-
      INSTALL                     |  310 +++++++++++++++++++++++++++++++++---------
      MODULES                     |only
      README                      |   52 +++++--
      TODO                        |   13 -
      UPGRADE                     |   17 ++
      index.php                   |   29 ++-
      search.php                  |   73 +++------
      config/config.php           |  132 ++++++++++-------
      images/dgssearch.gif        |only
      images/dgssearch_black.gif  |only
      images/dgssearch_button.jpg |only
      libs/searchdb.php           |  320 ++++++++++++++++++++++++++++++++-----------
      libs/searchfs.php           |  138 ++++++++++++++----
      libs/utils.php              |  324 ++++++++++++++++++++++++++++++++++++++------

      15 files changed, 1127 insertions, 349 deletions

  v0.9.2 (06/14/00) - Bug fixes and enhancements.
    - Increased search speed by 40% to 60% by lowering the buffer size
      from 8192 to 192. Values between 128 and 1024 seem to be optimal.
    - The desc now shows the portion of the file containing the search
      word(s).
    - Fixed an indexing problem which caused the first result to be
      blank on PHP3 systems. (Reported by Bas Wagter)
    - Search word(s) are bolded in description.
    - Fixed/Updated some error messages.
    - Fixed the database 'returnfield' example and comments.
    - Fixed various typos.

  v0.9.1 (06/01/00) - Minor bug fixes.
    - In findext(), the current dir is now correctly appended to files
      after returning to a parent directory.
    - displayResults() now indexes the results correctly.
    - Closed out an open comment in config.php.
    - Fixed invalid link id warning in searchMySQL() and searchMSSQL().
    - Added warnings if search is configured to use SQL/ODBC when it's
      not compiled into PHP.

  v0.9.0 (05/30/00) - Initial release of DGS Search.
